草庐IT

jQuery EasyUI 扩展

全部标签

c# - 将扩展方法组转换为具有泛型类型的委托(delegate)

我在IDataReader上有两个具有以下签名的扩展方法:internalstaticListGetList(thisIDataReaderreader,Funcdel)internalstaticdouble?GetDoubleOrNull(thisIDataReaderreader,stringcolumnName)GetDoubleOrNull没有任何重载。在其他地方,我可以做Funcdel=reader.GetDoubleOrNull;varx=reader.GetList(del);或varx=reader.GetList(reader.GetDoubleOrNull);或者

c# - 从扩展方法修改 ValueType?

几天前我需要切换一个bool,结果我这样做了:IsVisible=!IsVisible;我发现这是归档该功能的最简单方法。但在像上面的例子那样做之前,我尝试了一些不同的方法。主要是关于使用扩展方法。在我看来,这会使它变得更简单,或者至少可以减少要写的字符。IsVisible.toggle();但由于boolean是一种值类型,因此通过扩展方法发送的bool是原始bool的副本,而不是引用类型。publicstaticvoidToggle(thisbooleanvalue){value=!value;}这会做我需要的,但由于boolean被切换是原始boolean的副本,因此更改不适用于

c# - 为什么 VS 2008 不在 String 类的 Intellisense 中显示扩展方法

因为String实现了IEnumerable,我期待在Intellisense中看到Enumerable扩展方法,例如,在Strings="asdf";s.我期待看到.Select(...),.ToList(),ETC。然后我惊讶地看到扩展方法do实际上在字符串类上工作,它们只是没有出现在Intellisense中。有人知道为什么吗?这可能与this有关问题。 最佳答案 这是明确设计的。问题是,虽然String最明确地实现了IEnumerable,大多数人不会那样想,或者更重要的是不会那样使用它。String有相当少的方法。最初我们

c# - 可以从立即窗口调用扩展方法吗

我问这个问题是因为每当我尝试从VisualStudio2010中的即时窗口调用扩展方法时,我都会收到以下错误:System.Collections.Generic.IEnumerable'doesnotcontainadefinitionfor'ToList'andnoextensionmethod'ToList'acceptingafirstargumentoftype'System.Collections.Generic.IEnumerable'couldbefound(areyoumissingausingdirectiveoranassemblyreference?)如果“立即

c# - 响应式扩展订阅调用等待

我想针对响应式扩展Observable引发的每个事件执行异步调用。我还试图使所有内容保持同步,因为我希望在处理下一个事件之前完成异步调用。如何做类似于以下的事情?我说类似是因为下面的代码无法编译。settingsChangedInMemory.Subscribe(async_=>{varsettings=Extract();awaitSaveSettings(settings);});我不确定它是否改变了什么,但我需要订阅多个Observable。例如另一个像这样的订阅。settingsChangedOnDisk.Subscribe(async_=>{varsettings=await

c# - 在 Visual Studio 2015 中用于符号扩展操作数的按位或运算符

我刚刚尝试安装VisualStudio2015,在尝试编译一个旧项目时,我收到了警告CS0675Bitwise-oroperatorusedonasign-extendedoperand;considercastingtoasmallerunsignedtypefirst对于在VisualStudio2013中编译时未给出相同警告的一段代码。我发现重现所需的只是这段非常简单的代码:shorta=0;intb=0;a|=(short)b;现在,我已经阅读了thisSOquestion,我读过EricLippert'sblogpost在这个问题上,我很快就阅读了signextension,

C#检查属性的扩展方法

抱歉,如果这是一个愚蠢的菜鸟问题,请对我温柔一点,我正在努力学习...我想针对模型和Controller等事物的属性方法进行测试。主要是为了确保它们具有正确的属性,即Required。但我也将其用作扩展方法和Lambdas的实验。我想要的是一种方法,当implimented看起来像Controllercontroller=newController();controller.MethodName(params).HasAttribute();我使用了一点扩展方法,但没用到这个程度。我相信这应该很简单,但似乎无法让我的泛型等正确。 最佳答案

c# - 什么时候创建扩展方法是正确的?

我有一段代码如下:publicclassActivityHelper{publicvoidSetDate(IListanActivityList){foreach(ActivitycurrentinanActivityList){current.Date=DateTime.Now;}}//Moremethods,properties,fields,etc...}这可以很容易地转换为扩展方法。例如:publicstaticvoidSetDate(thisIListaList){foreach(ActivitycurrentinanActivityList){current.Date=Da

c# - 扩展 C# 合并运算符

在我解释我想做什么之前,如果你看下面的代码,你会明白它应该做什么吗?(已更新-见下文)Console.WriteLine(Coalesce.UntilNull(getSomeFoo(),f=>f.Value)??"defaultvalue");C#已经有一个null合并运算符,它在简单对象上工作得很好,但如果您需要访问该对象的成员则无济于事。例如Console.WriteLine(getSomeString()??"default");效果很好,但在这里对您没有帮助:publicclassFoo{publicFoo(stringvalue){Value=value;}publicstr

c# - 确定 IDisposable 是否应该扩展接口(interface)或在实现所述接口(interface)的类上实现

我如何确定是应该使用IDisposable扩展我的接口(interface)之一还是在实现我的接口(interface)的类上实现IDisposable?我有一个不需要处理任何外部资源的接口(interface),除了一个特定的实现。我的选择似乎是:1)在要求所有实现都实现Dispose的接口(interface)上实现IDisposable,即使只是一个空方法。-或-2)仅在具有需要处理的资源的类上实现IDisposable。这将导致“使用”问题,因为我的对象是从工厂创建的,因此所有上游代码都针对接口(interface)工作。由于该接口(interface)未绑定(bind)IDi